我是一名ICT学生,两年前我学会了如何处理asp.net和mvc3。我不得不用一个mysql数据库创建一个简单的网站。
现在我想用asp.net和MVC5创建自己的网站,仍然使用mysql。然而这么多变了!我试图弄清楚如何使用WebSecurity进行用户身份验证,使用SimpleMembership进行授权。
现在我有两个数据库。一个是生成的websecurity表,一个是我自己的表。我无法在互联网上找到关于如何使用这种组合的教程。
我的问题是这些:
我想尽可能具体。但是很难定义我真正需要知道的内容,因为我无法在互联网上找到一个关于websecurity和mysql数据库的好教程。
非常感谢帮助!
答案 0 :(得分:0)
所以我只想用你正在谈论的方法建立一个网站。
第一步是在自己的数据库中拥有自己的用户表。你说你已经拥有了。大!第1步完成。现在,在ASP.NET应用程序中(假设您正在使用其中已存在的帐户控制器附带的默认模板等)。
另一步是在你的web.config文件中,确保有默认连接。您将要使用您的用户表所在的连接。
<add name="DefaultConnection" connectionString="CONNSTRINGHERE" providerName="System.Data.SqlClient" />
^看起来应该是这样的。当然,您可以在此处使用其他连接(只需在该部分内添加另一个连接字符串)。
现在,最后一步是进入InitializeSimpleMembershipAttribute.cs文件。我永远无法让代码为我工作,但我注释掉了构造函数中的所有内容并使用了它:
public SimpleMembershipInitializer()
{
try
{
if (!WebSecurity.Initialized)
{
WebSecurity.InitializeDatabaseConnection("CONNSTRINGHERE", "Users", "User_ID", "Username", autoCreateTables: true);
}
}
catch (Exception ex)
{
throw new InvalidOperationException("Something is wrong", ex);
}
}
&#13;
如果用户&#34;用户&#34;,则需要在其中输入数据库表的名称。你说你的用户也叫做用户,所以不需要做任何改动。
所以这一切的工作方式是,您在webconfig中为数据库定义了默认连接。 Simplemembership知道您的表称为用户。确保有一个名为&#34; username&#34;的列,你应该好好去。下次运行应用程序时,它将为您自动创建数据库中的四个表:webpages_Membership,webpages_OAuthMembership,webpages_Roles,webpages_UsersInRoles。您可以查看这些内容并查看它们的使用方式等。我不会详细介绍。
但是,您的网站现在将使用您用户表中的登录信息进行身份验证。创建新用户时,它将使用所有这些表的组合进行身份验证。
希望这对你有所帮助。您的connstrings可能会有所不同,因为我使用的是sqlserver而您正在使用mysql。你可以谷歌适当的connstring格式。