MVC3网络应用程序与SQL Server 2012上的数据库绑定。这将是一个由第三方托管的面向公众的网站。
我是使用表单身份验证的新手。几个月前我使用默认的Internet模板在VS 2012中创建了一个项目,所以我有标准的帐户控制器,等等。我注意到它构建了一个名为aspnet-MyAppName-数字的新空数据库。我假设它适用于userprofile表等。
我想知道我是否应该选择它。我已经在现有数据库中构建了一个用户表,并使用Crypto库构建了一个类来散列和存储密码,并创建用户帐户。我正在实现用于应用程序间安全性的表单auth,即确保人们有权查看仅限成员的页面。
我需要做什么才能将现有的validateUser类与Forms Auth集成? 如果我想在现有数据库中拥有所有用户安全性,那么我只是在某处更改连接字符串吗?或者还有更多吗?
就像我说的,我是Forms Auth的新手,所以如果我想做一些非常奇怪的东西,应该保持原样,请告诉我。感谢。
==== EDIT =======
Theanks Zach。我开始查看这个,因为我想在现有数据库中使用成员资格表,我运行了asp_regsql.exe,它添加了表格。我需要在成员资格用户表和一些现有表之间添加一个关系,但我的所有ID列都是int,所有成员资格表都是唯一的,它们不相关。我现有的表格中包含内容。我尝试更改uniqueidentifiers,但它不会工作,甚至尝试删除约束,然后表,但约束不会下降,说它们不是约束。知道如何成功地将新成员资格表格交配给现有成员吗?
答案 0 :(得分:0)
一个好的做法是Mempership提供者
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