Tag: asp.net membership

通过电子邮件恢复/重置丢失的密码选项

我正在使用DefaultMembershipProvider开发一个C#ASP.MVC 4项目,我正在尝试用一种用户友好的方式来恢复/重置丢失的密码。 我的第一次尝试是让用户提供他们的用户名(这是一个有效的电子邮件地址),然后应用程序将生成随机密码(符合我们的要求),然后将密码通过电子邮件发送给用户。 我的理想解决方案是当用户点击忘记密码按钮时。 系统会询问他们的用户名,这些用户名在提供时会导致电子邮件与URL一起发送(此URL也会附加到期日期)。 此解决方案还会重置应用程序内的用户密码(在发送电子邮件之前)。 当用户点击URL时,他们会自动登录并发送到更改密码表单。 这个解决方案有问题吗? 对于配置,我设置了以下值:

如何知道用户是在网站上还是离线?

我正在asp.net MVC网站上建立一个聊天系统,如果用户在网站上没有超过2分钟的动作,我会将他的状态设置为远离。 我的问题是,如何知道用户是否离线,离线意味着他关闭了网站或签名者。 我知道在Membership类中有一个isOnline属性,但我没有使用Membership来在本网站中进行安全登录。 有没有办法知道用户是否在线, 或者如何实现这个membership .IsOnline以在我的代码中使用相同的内容。

TransactionScope中的Membership.GetUser()抛出TransactionPromotionException

以下代码抛出TransactionAbortedException ,消息“事务已中止”,内部TransactionPromotionException ,消息“尝试提升事务时失败”: using ( TransactionScope transactionScope = new TransactionScope() ) { try { using ( MyDataContext context = new MyDataContext() ) { Guid accountID = new Guid( Request.QueryString[ “aid” ] ); Account account = ( from a in context.Accounts where a.UniqueID.Equals( accountID ) select a ).SingleOrDefault(); IQueryable loginList = from l in context.Logins where […]

获得授权属性的许可?

我已经实现了自己的Authorize属性,并且我注意到在使用[Authorize]时它会查询以检查权限。 有没有什么方法可以获得该权限并在当前应用Authorize属性的控制器中使用它而无需重写和重新查询控制器中的代码?

实现自定义成员资格用户和自定义成员资格

参考 http://msdn.microsoft.com/en-us/library/6tc47t75%28v=VS.80%29.aspx http://msdn.microsoft.com/en-us/library/ms366730.aspx 题 在标题Create a Custom Membership Provider标题下的第二个链接中,您将注意到他们提到了这一点 您需要创建一个支持自定义成员资格用户类型和自定义成员资格数据存储的自定义成员资格提供程序。 可以编写自定义成员资格提供程序的GetUser和CreateUser方法以返回自定义成员资格用户类型的对象。 下面是我的自定义会员用户与自定义字段 自定义会员用户 public class CustomMembershipUser : MembershipUser { //private fields for internal use private bool _isMarried; private bool _hasLicense; private string _address; private int _userId; //public fields for use by end user public int UserId { get { return _userId; } set { _userId […]

在升级到VS 2010 / .NET 4.0后,Membership.ValidateUser始终返回false

不确定这是属于VS 2010还是升级后的框架,但是……我们正在使用Oracle成员资格提供程序来validation用户身份。 在升级之前一切正常,但现在尽管有效凭据Membership.ValidateUser(user, password)返回false 。 没有exception抛出,因此很难确定问题可能是什么。 VS 2010中的网站管理工具仍然能够管理用户和角色(或多或少),因此我没有理由质疑连接。 问题可能是什么?

如何从ASP.NET MVC自定义IdentityUser模型获取用户配置文件数据?

在这篇博客的帮助下,我向ApplicationUser类添加了一个自定义配置文件属性OfficeKey (在IdentityModels.cs文件中): public class ApplicationUser : IdentityUser { public int OfficeKey { get; set; } //remaining code here } 我可以得到这样的用户名: User.Identity.Name 如何获取自定义用户数据OfficeKey ? 我试过这些: 如何从Asp.net mvc模型获取身份用户数据 如何从ASP.NET MVC默认Mempership模型获取用户电子邮件地址? 注意:它是一个带有MySQL成员资格提供程序的ASP.NET MVC 5 Web应用程序。

Membership.DeleteUser(UserName,true)不从角色中删除用户

当我单击“删除”链接按钮时,它可以从我的“JobPost.mdf”中的“UserDetail”表中删除所有用户信息,它还会删除相应的“aspnet_Users”和“aspnet_Membership”,但“UserInRole”仍然包含那个UserName。 即使我指定了Code:Membership.DeleteUser(UserName,true); 我认为true是bool deleteallrelated数据,但它并没有真正删除userInRole。 因此,下次用户使用相同名称注册时,它会自动获得“admin”角色。 这个“deleteUser”页面我将它保存在受保护的“admin”文件夹中。 怎么解决? 为什么Membership.DeleteUser(UserName,true)不会删除UserInRole? protected void GridView2_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == “Delete”) { string UserName = e.CommandArgument.ToString(); Membership.DeleteUser(UserName, true); JobPostDataContext db = new JobPostDataContext(); var query = from u in db.UserDetails where u.UserName == UserName select u; foreach (var item in query) { db.UserDetails.DeleteOnSubmit(item); } db.SubmitChanges(); FormsAuthentication.SignOut(); } […]

用Dapper调用自定义构造函数?

我正在尝试使用Dapper与ASP.NET SQL Membership Provider表进行交互。 我包装了SqlMembershipProvider类,并添加了一个额外的方法来获取MembershipUsers给出一些与我自己的一些自定义表相关的标准。 使用Dapper查询数据时,似乎Dapper首先使用无参数构造函数实例化该类,然后将返回的列“映射”到对象的属性中。 但是,MembershipUser类上的UserName属性没有setter。 从Dapper SqlMapper.cs中的第1417行开始, GetSettableProps()方法只获取可设置的属性。 我试图做一个MultiMap查询来调用构造函数,但问题是传递给查询的对象已经缺少UserName。 我猜我可以修改GetSettableProps()方法,但我不确定它是否可行,或者它是否会影响我现有的代码。 反正我有没有调用MembershipUser类有的自定义构造函数? 或者我是否可以对Dapper做出合理的改变以支持我的情况? ** 更新 ** Marc使用非generics/动态Query()方法的答案是正确的,但对后人来说,这是我在Dapper中引用的方法: static List GetSettableProps(Type t) { return t .GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance) .Select(p => new PropInfo { Name = p.Name, Setter = p.DeclaringType == t ? p.GetSetMethod(true) : p.DeclaringType.GetProperty(p.Name).GetSetMethod(true), Type = p.PropertyType }) .Where(info => info.Setter != […]

如何对GUID与LINQ进行不区分大小写的比较?

在下面的代码中,我想比较两个GUID。 问题是我没有返回任何任务,因为GUIDS是不同的情况(大写与小写)。 我需要执行不区分大小写的比较。 MembershipUser membershipUser = Membership.GetUser(); string strUserId = membershipUser.ProviderUserKey.ToString(); Guid userId = new Guid(strUserId.ToUpper()); lblUserId.Text = userId.ToString(); DataModelEntities dc = new DataModelEntities(); var userTasks = dc.tasks.Where(t => t.user_id == userId).ToList(); 无论如何,我如何比较GUID并找到匹配? 更新1现在将会员提供商的guid转换为GUID Guid userId = (Guid) membershipUser.ProviderUserKey; 我仍然没有得到任何比赛。