使用没有.Net提供程序的表单身份验

时间:2010-01-16 15:34:50

标签: asp.net forms-authentication

我想使用表单身份验证来保护我网站的某个部分,并使用我在web.config中定义的用户名和密码。当我尝试登录时,我收到以下信息。

Server Error in '/' Application.

Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'.

我猜这种情况正在发生,因为它正在尝试使用LocalSqlServer连接字符串定义的Membership表。 我不想使用会员功能,如何配置我的网络应用呢?

我是否需要自己为内置的Login控件编写Authenticate函数?

2 个答案:

答案 0 :(得分:1)

问题不在于您的配置文件,而在于使用Login控件。

Login控件使用machine.config中定义的默认成员资格提供程序。 (它是指向SQL Express数据库的SqlMembershipProvider)。

您根本不想使用默认的成员资格提供程序。只需创建自己的登录页面并使用以下服务器端逻辑来验证凭据并将用户登录到站点中:

    if( Page.IsValid )
        if (FormsAuthentication.Authenticate(txtName.Text,txtPassword.Text)) 
            FormsAuthentication.RedirectFromLoginPage(txtName.Text, false);
        else
            lblMsg1.Text = "Wrong name or password. Please try again.";

答案 1 :(得分:0)

试试这个:

<authentication mode="Forms">
  <forms loginUrl="Login.aspx">
    <credentials>
      <user name="Joe" password="Smith" />
    </credentials>
  </forms>
</authentication>