ASP.NET MVC MySql Membership Provider,用户无法登录
我一直在使用
MySql作为asp.net mvc表单身份验证的成员资格提供程序.据我所知,我已经正确配置了东西,我可以通过注册操作和asp.net web配置站点创建用户.但是,当我尝试与其中一个用户登录时,它不起作用.它返回一个错误,好像我输入了错误的密码,或者该帐户不存在.
我已在数据库中验证该帐户确实存在.我按照这里的说明参考:http://blog.tchami.com/post/ASPNET-MVC-2-and-MySQL-Membership-Provider.aspx 这是我的web.config: <?xml version="1.0"?> <!-- For more information on how to configure your ASP.NET application,please visit http://go.microsoft.com/fwlink/?LinkId=152368 --> <configuration> <connectionStrings> <add name="MySQLConn" connectionString="Server=localhost;Database=intereditor;Uid=<user>;Pwd=<password>;"/> </connectionStrings> <system.web> <compilation debug="true" targetFramework="4.0"> <assemblies> <add assembly="System.Web.Abstractions,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35" /> <add assembly="System.Web.Routing,PublicKeyToken=31BF3856AD364E35" /> <add assembly="System.Web.Mvc,Version=2.0.0.0,PublicKeyToken=31BF3856AD364E35" /> </assemblies> </compilation> <authentication mode="Forms"> <forms loginUrl="~/Account/LogOn" timeout="2880" name=".ASPXFORM$" path="/" requireSSL="false" slidingExpiration="true" enableCrossAppRedirects="false" /> </authentication> <membership defaultProvider="MySqlMembershipProvider"> <providers> <clear/> <add name="MySqlMembershipProvider" type="MySql.Web.Security.MySQLMembershipProvider,MySql.Web,Version=6.3.4.0,PublicKeyToken=c5687fc88969c44d" autogenerateschema="true" connectionStringName="MySQLConn" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" applicationName="/" /> </providers> </membership> <profile defaultProvider="MySqlProfileProvider"> <providers> <clear/> <add name="MySqlProfileProvider" type="MySql.Web.Profile.MySQLProfileProvider,PublicKeyToken=c5687fc88969c44d" connectionStringName="MySQLConn" applicationName="/" /> </providers> </profile> <roleManager enabled="true" defaultProvider="MySqlRoleProvider"> <providers> <clear /> <add name="MySqlRoleProvider" type="MySql.Web.Security.MySQLRoleProvider,PublicKeyToken=c5687fc88969c44d" connectionStringName="MySQLConn" applicationName="/" /> </providers> </roleManager> <pages> <namespaces> <add namespace="System.Web.Mvc" /> <add namespace="System.Web.Mvc.Ajax" /> <add namespace="System.Web.Mvc.Html" /> <add namespace="System.Web.Routing" /> </namespaces> </pages> </system.web> <system.webServer> <validation validateIntegratedModeConfiguration="false"/> <modules runAllManagedModulesForAllRequests="true"/> </system.webServer> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> </configuration> 任何人都可以帮我识别哪些错误,以便用户可以登录? UPDATE 因此,在成员资格提供程序本身的代码中调试登录过程后,我发现提供程序中存在错误.存储在数据库中的密码哈希与基于输入的密码生成的密码之间存在差异.作为我的问题的解决方法,我将密码格式更改为’encrpyted’并将机器密钥添加到我的web.config. 我仍然有兴趣在提供程序中找出散列格式的问题,并将花费更多的时间来调试它,如果我能找出问题,我将整理一个补丁并提交它. 解决方法
从.NET 4开始,MySQL连接器使用的散列算法从SHA1变为更复杂的(HMACSHA256).
要解决此问题,您可以更改web.config文件: <membership defaultProvider="AspNetMySqlMembershipProvider" hashAlgorithmType="SHA1"> 有关详细信息,请访问: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.NET在Web应用程序中添加Razor页面而不是Web站点,没有MV
- asp.net-mvc-2 – 将模型数据传递给外部javascript
- 初学ReactJS,写了一个RadioButtonList组件
- asp.net – GridView RowUpdating无法获取新值
- asp.net-mvc-4 – ASP.NET MVC中WebForms的Master Page代码
- asp.net-mvc – 为什么.NET在MVC asp.net应用程序中生成两个
- asp.net – 如何在web.config中定义using语句?
- ASP.NET OOP-关联操作符重载的操作_RelationalOperatorOver
- asp.net – 跟踪当前在线用户的最佳方式
- 在Asp.Net中启用Secure中的HTTPOnly
- asp.net – 是否可以在源代码中使用iframe和loca
- asp.net – 使用Razor的Html.EditFor限制文本框中
- asp.net-mvc – 用于创建具有模型和ViewData项目
- entity-framework – 在MVC 5项目上使用ASP.NET
- ASP.net vNext和Entity Framework 6
- asp.net-mvc-4 – 为kendo ui元素添加jquery验证
- asp.net-mvc – 在ASP.NET MVC 3应用程序中引用类
- asp.net-mvc – 使用AWS .NET SDK进行SNS订阅确认
- asp.net-core – JsonConvert DataSet .NET Core
- .net – 为什么IHostedService是异步的