asp.net身份验证-使用web.config中的凭据-问题

asp.net身份验证-使用web.config中的凭据-问题,asp.net,authentication,forms-authentication,Asp.net,Authentication,Forms Authentication,我有一个简单的问题,这让我头痛了好几天 我用登录控件创建了一个非常简单的应用程序。我将用户数据保存在web.config文件中: <authentication mode="Forms"> <forms name=".RzeskoLoginCookie"> <credentials passwordFormat="Clear"> <user name="test" password="test"/>

我有一个简单的问题,这让我头痛了好几天

我用登录控件创建了一个非常简单的应用程序。我将用户数据保存在web.config文件中:

<authentication mode="Forms">
    <forms name=".RzeskoLoginCookie">
        <credentials passwordFormat="Clear">
             <user name="test" password="test"/>
        </credentials>
    </forms>
</authentication>
现在的问题是:

当我在VS2008内置Web服务器上运行网站时,一切正常(我可以登录)。当我将我的网站复制到IIS时,我经常会遇到这个恼人的错误(在我单击“登录”按钮后):

未能生成的用户实例 SQL Server由于在中发生故障 正在检索用户的本地 应用程序数据路径。请做 确保用户具有本地用户配置文件 在电脑上。连接将 关门

我还注意到在我的App_数据文件夹中创建了一些奇怪的文件

总而言之。我想要实现的是使用web.config文件中的用户凭据,而不使用sql server

我非常感谢你的帮助

问候 登录控制页面中的主键:

*

登录控件使用成员身份 提供程序获取用户凭据。 除非您另有说明,否则 登录控件使用默认值 中定义的成员资格提供程序 Web.config文件。指定 不同的提供程序,请设置 将MembershipProvider属性设置为 已定义成员资格提供程序名称 在应用程序的Web.config文件中。 有关更多信息,请参阅成员资格 提供者

*

默认成员资格提供程序是AspNetSqlProvider,它使用SQL Server数据库作为其用户存储


如果要提供自定义身份验证例程,可以编写自己的自定义成员资格提供程序,也可以处理登录控件的方法以提供自己的身份验证逻辑。

如果您在代码中注意到,则可以使用方法声明来处理
控件的登录事件:

protected void Login1_LoggingIn(object sender, LoginCancelEventArgs e)
此控件与ASP.NET成员资格提供程序接口,这可能是它查找连接字符串的原因

因此,不要使用
控件,只需使用一个按钮并处理
单击事件,这样就不会使用成员资格:

<asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" />

好的,谢谢大家指出解决方案。
我最终通过创建自己的身份验证事件(与登录控件关联)避免了该错误。

那么为什么在测试服务器上一切正常呢?用户凭据是从web.config读取的?但是您指定了什么提供程序来让它使用web.config中的凭据?它在visual development server上工作,但在IIS中发布时仍然存在相同的错误…它仍然尝试使用默认成员身份和sqlprovider(并连接到sql数据库),即使我像你一样使用我自己的活动。
<asp:Button id="LoginButton" Text="Login" OnClick="Login_OnClick" runat="server" />
public void Login_OnClick(object sender, EventArgs args)
{
    if(FormsAuthentication.Authenticate(Login1.UserName, Login1.Password))
    {
        FormsAuthentication.RedirectFromLoginPage(Login1.UserName, Login1.RememberMeSet);
    }
}