0

MVC3 Web 应用程序绑定到 SQL Server 2012 上的 db。这将是一个由第三方托管的面向公众的网站。

我是使用表单身份验证的新手。几个月前,我使用默认的 Internet 模板在 VS 2012 中创建了一个项目,所以我有标准的帐户控制器等。我注意到它构建了一个名为 aspnet-MyAppName-bunch of numbers 的新空数据库。我假设它是用于 userprofile 表等。

我想知道我是否应该接受它。我已经在我现有的数据库中构建了一个用户表,并使用 Crypto 库构建了一个类来散列和存储密码,并创建用户帐户。我正在为应用程序间的安全性实施表单身份验证,即确保人们有权查看仅限成员的页面。

我需要做什么才能将现有的 validateUser 类与 Forms Auth 集成?如果我想在现有数据库中拥有所有用户安全内容,我是否只需在某处更改连接字符串?还是还有更多?

就像我说的,我是 Forms Auth 的新手,所以如果我想做一些非常奇怪的事情并且应该保持原样,请告诉我。谢谢。

====编辑========

Theanks 扎克。我开始查看这个,因为我想要现有数据库中的成员表,我运行了 asp_regsql.exe,它添加了表。我需要在成员资格用户表和一些现有表之间添加关系,但是我所有的 ID 列都是 int 并且所有成员资格表都是唯一标识符,这不会相关。我现有的表格中有内容。我尝试更改 uniqueidentifiers 但它不起作用,甚至尝试删除约束,然后表但约束不会删除,说它们不是约束。知道如何成功地将新成员表与我现有的成员表配对吗?

4

1 回答 1

0

一个好的做法是会员资格提供者

在您的 web.config 中指定身份验证模式和您的自定义成员资格提供程序

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>

<membership defaultProvider="CustomMembershipProvider">
  <providers>
    <clear/>
    <add name="CustomMembershipProvider" 
        type="CustomMembership.Models.CustomMembershipProvider"
        connectionStringName=""
        enablePasswordRetrieval="false"
        enablePasswordReset="true"
        requiresQuestionAndAnswer="false"
        requiresUniqueEmail="false"
        maxInvalidPasswordAttempts="5"
        minRequiredPasswordLength="6"
        minRequiredNonalphanumericCharacters="0"
        passwordAttemptWindow="10"
        applicationName="/" />
  </providers>

一个建立您的自定义成员资格的简短示例,您可以扩展许多附加功能

public class CustomMembershipProvider : MembershipProvider
{

    public override bool ValidateUser(string username, string password)
    {
        //all your logic to validate the user credentials to your custom db
    }

}

注意:这只是一个简短的示例,要获取会员提供者的完整文档,请参阅http://msdn.microsoft.com/en-us/library/f1kyba5e(v=vs.100).aspx

和一个完整的例子,你可以在这里找到http://msdn.microsoft.com/en-us/library/6tc47t75(v=vs.100).aspx

于 2013-05-04T00:39:07.207 回答