Tag: asp.net membership

MVC4使用什么加密?

我们如何找出MVC4使用的加密方式? 我注意到有一个SALT选项,但似乎也没有在WebSecurity()模块中使用。 我想知道使用的标准,以及是否可以轻松升级到最新的SHA

如何获取当前登录用户的ID?

我正在开发一个从ASP.NET Web应用程序模板构建的示例项目(Web表单,而不是MVC)。 用户登录后,我想获取用户的ID并将其存储在会话变量中,以便我可以在页面之间传递它。 如何从ASP.NET成员资格提供程序获取用户的ID? 根据用户的ID,我指的是成员资格数据库中的GUID。 有没有方法来获取用户的ID? 我正在使用默认数据库架构并将其部署到我的服务器。 谢谢!

使用MySql MySQLMembershipProvider – autogenerateschema =“true”不起作用?

我正在尝试在Visual Web Developer 2008中使用MySQLRoleProvider(MySql.Web,Version = 6.2.2.0)。 在尝试添加角色时,我得到一个例外“表’test.my_aspnet_applications’不存在” if (!Roles.RoleExists(“TestRole”)) { Roles.CreateRole(“TestRole”); } 有人能告诉我哪里出错了。 或者告诉我如何生成/找到正确的数据库脚本来创建角色,成员资格,配置文件…… MySql表。

使用C#通过SOA方法进行身份validation

我正在重建一个网站,我正在尝试使用SOA方法。 当前的网站是在.NET 2.0中使用现成的SqlMembershipProvider。 我们试图消除与数据库的直接连接,并通过WCF服务层推送所有内容。 我们正在使用的方法是将所有内容分开 – 有一个用于模型和接口的库,一个用于服务的库,以及一个用于服务代理的库。 到目前为止,最大的障碍是弄清楚如何管理用户身份validation及其会话。 使用这种方法做到这一点的最佳方法是什么。 我们应该废弃.NET成员资格模型并使用类似OpenId的东西,只是允许用户将他们的数据重新连接到新帐户吗? 我已经做了一些搜索,并且找不到很多关于如何管理这个,但我知道它已经完成了。

使用SimpleMembershipProvider更新自定义用户配置文件字段?

我在UserProfile表中添加了一个名为ClassOfYear的自定义字段,我可以在注册时将数据输入到配置文件中,如下所示: var confirmationToken = WebSecurity.CreateUserAndAccount(model.UserName, model.Password, propertyValues: new { ClassOfYear = model.ClassOfYear }, requireConfirmationToken: true); 但是,现在我希望能够在管理它时更新配置文件,但我似乎无法找到这样做的方法。 我是否需要自己更新UserProfile表? 如果没有,这样做的适当方法是什么? 仅供参考,我正在使用Dapper作为我的数据访问层,以防万一。 但是, WebSecurity ,我可以通过Dapper更新UserProfile表,如果这是我应该做的,我只是认为WebSecurity类或类似的东西已经有了一种方式,因为自定义用户配置文件字段已与CreateUserAndAccount方法。 谢谢大家!

Page.User.Identity与Request.LogonUserIdentity之间的差异

Page.User.Identity和Request.LogonUserIdentity之间有什么区别(幕后)? 不是类型,名称等的差异,而是它们在幕后实现的差异(即一个调用windows xxx api,另一个调用asp.net xxx api …)。

如何禁用ASP.NET的自动注销function

我使用ASP.NET成员资格API。 这会自动注销非活动会话。 我不希望这个自动注销。 我使用了一些工作,比如在指定的时间后调用ajax中的页面。 或者我使用iframe方法保持会话活动。 但这并不能很好地满足我的需求。 我想完全禁用此注销function。 注意我的问题是回应这篇文章 增加会话超时并不总是有效 乍一看,增加C#ASP .NET的web.config文件中的会话超时值应该可以解决问题。 您可以假设通过在下面的行中将超时值更改为60分钟,用户将保持登录Web应用程序会话整整60分钟。 但是,实际上存在两个问题。 第一个问题是将超时值设置为大于1小时的任何时间将导致服务器上保留过多的内存,因为IIS在会话期间保留所有会话内存。 想象一下,在高流量站点上超时值为5小时,保存数千个用户会话的所有会话数据。 第二个问题可能在测试应用程序时出现,通常Web应用程序仅在15分钟后就会超时。 究竟发生了什么? 虽然问题实际上可能是在IIS中为会话超时或连接超时属性配置的值(在共享主机的情况下,您甚至可能无法访问),但很明显我们需要将会话超时控制权转移到我们自己动手。

ASP.NET – 获取DirectoryEntry / SID的主体/相对标识符(RID)

我在自定义MembershipProvider类中使用Active Directory来validationASP.NET 2.0 Intranet应用程序中的用户,并将其sid与应用程序的配置文件相关联。 使用ActiveDirectoryMembershipProvider , MembershipUser的ProviderUserKey对象如下所示 SecurityIdentifier sid = (SecurityIdentifier)Membership.GetUser().ProviderUserKey; string sidValue = sid.ToString(); /* sidValue = “S-1-5-21-XXXX-XXXX-XXXX-YY” */ 据我了解, YY是命名空间中的主体(也称为组/域)。 使用自定义MembershipProvider时,我可以使用DirectoryEntry对象的objectSid属性获取sid DirectoryEntry entry = new DirectoryEntry(path, username, password); SecurityIdentifier sid = new SecurityIdentifier((byte[])entry.Properties[“objectSid”].Value, 0); string sidValue = sid.ToString(); /* sidValue = “S-1-5-21-XXXX-XXXX-XXXX” */ 在这种情况下, sidValue是相同的,除了它不包含主YY 。 我的问题是双重的 是否需要本人才能唯一地识别个人? 是否可以从DirectoryEntry对象(或通过System.DirectoryServices可用的任何其他类)获取主体? 编辑: 做了一些进一步的阅读( {1} {2} […]

Custom MembershipProvider:没有为此对象定义的无参数构造函数

我有一个自定义MembershipProvider类,它inheritance自MembershipProvider,它带有两个参数: public class CustomMembershipProvider : MembershipProvider { private readonly ISecurityRepository _securityRepository; private readonly IUserRepository _userRepository; public CustomMembershipProvider(ISecurityRepository securityRepository, IUserRepository userRepository) { … } public override MembershipUser GetUser(string username, bool userIsOnline) { … } … etc } 这个配置文件看起来类似于: 这在我的Web应用程序中主要用于登录和注销。 我正在使用Unity for DI并在我的Boostrapper.cs类中设置必要的类。 但是,当我想创建一个自定义User类并调用Membership.GetUser方法时,我最近遇到了一个问题。 当我这样做时,我得到以下exception: {“No parameterless constructor defined for this object. (C:\\*app path*\\web.config line 43)”} 我的配置文件中的第43行指向我上面发布的自定义成员资格提供程序。 […]

ASP.NET成员身份更改密码无效

我有这个代码,当他们点击密码重置按钮时更改用户的密码(有额外的代码登录到ELMAH,所以我可以试着弄清楚出了什么问题)。 这是在ASP.NET MVC 2中,使用标准的aspnet成员资格提供程序,使用这样的简单视图: New Password: ______ Confirm Password: ______ [Reset] [Cancel] 此视图的路径是/Account/Reset/guid ,其中guid是aspnet成员资格数据库中的用户ID。 代码的关键部分是它调用user.ChangePassword() 。 您可以看到它在成功时记录消息。 问题是对于某些用户,会记录成功消息,但他们无法使用新密码登录。 对于其他用户,它会记录成功消息,并且他们可以登录。 if (user.ChangePassword(pwd, confirmPassword)) { ErrorSignal.FromCurrentContext().Raise( new Exception(“ResetPassword – changed successfully!”)); return Json(new { Msg = “You have reset your password successfully.” }, JsonRequestBehavior.AllowGet); } 完整的代码清单是: [HttpPost] public JsonResult ResetPassword(string id, string newPassword, string confirmPassword) { ErrorSignal.FromCurrentContext().Raise(new […]