我是ASP.NET成员新手,到目前为止大多数解决方案都不适用于我.我想实现一个简单的查询,检查用户是否在线并返回布尔结果.我正在使用ASP.NET成员资格和配置文件提供程序.
Maybe a function like this:
public boolean IsUserOnline(string userName)
{
boolean result ={some query string here......}
return result;
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗??
我使用 ASP.NET 会员资格提供程序在我的本地机器上设置了这个会员网站。当我去:
它把我重定向到
http://localhost/Login.aspx?ReturnUrl=%2fadmin%2fDefault.aspx
这很好。但是在我输入登录信息后,页面似乎刷新了。它实际上并没有让我登录,它看起来只是刷新了页面。如果我将 URL 更改为:
它工作正常。它让我登录没问题,并将我重定向到我的默认页面。我还检查了实时站点,它也做同样的事情。有任何想法吗?提前致谢!
编辑:这是标记:
<asp:Login ID="Login1" runat="server" CssClass="LoginBox" TitleText="Please Log In">
<LayoutTemplate>
<h2>
Please Log In:</h2>
<p runat="server" id="FailureText" visible="false">
Either your email address or password was incorrect. Please try again.</p>
<strong>Email</strong><br />
<asp:TextBox ID="UserName" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName"
Text="*"></asp:RequiredFieldValidator>
</p>
<p>
<strong>Password</strong><br />
<asp:TextBox ID="Password" runat="server" TextMode="Password"></asp:TextBox>
<asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password"
Text="*"></asp:RequiredFieldValidator>
</p>
<p>
<asp:Button ID="Login" CommandName="Login" runat="server" Text="Log In" /></p>
<p>
Please <a runat="server" id="Link_ContactUs">contact </a>an administrator if you …Run Code Online (Sandbox Code Playgroud) asp.net redirect asp.net-membership membership-provider returnurl
我在ac#项目中使用自定义的MemberShipProvider,基于以下代码:http://www.asp.net/learn/videos/video-189.aspx,由于某种原因我无法弄清楚,方法是解密用户密码以验证登录在密码值前面增加了8个字符(例如:䝉惯尝㳪畕锬密码).
我使用"加密"的passwordFormat和UnEncodePassword方法包含:
private string UnEncodePassword(string encodedPassword)
{
string password = encodedPassword;
password = Encoding.Unicode.GetString(DecryptPassword(Convert.FromBase64String(encodedPassword)));
return password;
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我不得不承认我讨厌会员提供者.默认实现通常不太合适,到目前为止我还没有看到自定义成员资格提供程序的良好实现,可能是因为这是不可能的:-)
所以问题是:
在您看来:哪些是没有会员/角色提供者作为通用类的原因?我的意思是,为什么微软没有选择这种方法.
编辑
阅读答案我意识到可能还不够清楚,我在谈论MembershipProvider和RoleProvider.不是关于ASP NET的核心认证机制.
我创建了一个继承自MembershipProvider的BasicMembershipProvider类,在实现时,不会调用ValidateUser.这是我的设置:
web.config中
<membership defaultProvider="BasicMembershipProvider">
<providers>
<clear/>
<add name="BasicMembershipProvider" type="MyMVCProject.Providers.BasicMembershipProvider"/>
</providers>
</membership>
Run Code Online (Sandbox Code Playgroud)
BasicMembershipProvider.cs
public class BasicMembershipProvider : MembershipProvider
{
//THIS FUNCTION NEVER GETS CALLED
public override bool ValidateUser(string email, string password)
{
//Do custom checks.
}
}
Run Code Online (Sandbox Code Playgroud)
调节器
FormsAuthentication.Authenticate(model.Email, model.Password)
Run Code Online (Sandbox Code Playgroud)
这是用我自己的会员逻辑覆盖MembershipProvider的方法吗?如果是这样,为什么ValidateUser我打电话时不会调用覆盖的函数FormsAuthentication.Authenticate()?
我已经创建了自定义成员资格提供程序,操作MembershipUser.ProviderUserKey而不是UserName 对我来说更方便.所以,检索ProviderUserKey我执行这样的代码:
if (User.Identity.IsAuthenticated)
{
int UserID = (int)Membership.GetUser(User.Identity.Name).ProviderUserKey;
}
Run Code Online (Sandbox Code Playgroud)
但是,当GetUser()执行方法时,必须从数据库中检索用户数据,这对我不利.这是不必要的浪费服务器时间,无论这个时间有多短,我都想避免它.
有没有其他方法可以ProviderUserKey更方便的方式,User.Identity.Name以防万一?
我想听听你的想法.你如何在你的网页上解决这个问题?
谢谢.
我是asp.net mvc 3世界的新手我看了一些教程开始.我想知道管理用户的最佳选择是什么?
我打算使用成员资格提供程序(并修改它以扩展默认字段)或使用用户分析+成员资格提供程序?
这些有哪些优点和缺点?一旦我创建了我的应用程序,我的想法是创建一个移动应用程序:用户必须能够通过用户和密码(我的Web应用程序)访问...它会影响我的选择吗?
asp.net-mvc mobile registration membership-provider user-profile
大家好,我使用的是自定义成员资格提供程序和自定义角色提供程序。并且正在正确地使用它们登录。我还实现了我自己的Membership用户对象,以便可以访问其他用户信息,并且不需要每次更改页面时都加载所有数据,但是我目前无法使其正常工作。以下是我的用户对象:
public class User : MembershipUser
{
[Required(ErrorMessage = "Username cannot be blank")]
[Display(Name = "User name")]
public string UserName { get; set; }
[Required(ErrorMessage = "Password cannot be blank")]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[Display(Name = "User ID")]
public long UserID { get; set; }
[Display(Name = "Family Name")]
[StringLength(50, ErrorMessage = "Family name cannot be longer than 50 characters")]
public string FamilyName { get; set; }
[Display(Name = "Given Name")]
[StringLength(50, ErrorMessage …Run Code Online (Sandbox Code Playgroud) 我正在使用 Visual Studio 2013 Web 表单应用程序和 MySql 数据库来构建 Web 表单应用程序,但我无法通过“成员资格和角色管理”。我对会员资格使用了数据库优先方法,当我尝试注册新用户时,收到以下错误消息:
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: MySql.Data.MySqlClient.MySqlException: Unknown column 'Extent1.Discriminator' in 'where clause'
Source Error:
Line 16: var manager = new UserManager();
Line 17: var user = new ApplicationUser() { UserName = UserName.Text };
Line 18: IdentityResult result = manager.Create(user, Password.Text);
Line 19: …Run Code Online (Sandbox Code Playgroud) mysql asp.net membership-provider entity-framework-6 asp.net-identity
我有类似下面的要求使用OAuth 2.0和Web Api实现REST API.
REST API应该允许 - 创建,更新,查看和删除订单 - 来创建,更新,查看和删除库存
API应该能够被任何类型的外部客户端使用,例如Web应用程序,移动应用程序,Windows/Web服务等.
允许外部客户的角色:订单管理,库存管理外部客户的用户数据(角色,权限)将不由我们的系统管理.
注意:可以有另外两个角色,如内部,外部.因为外部用户不允许删除功能.
订单和库存数据将在当前Windows /桌面应用程序已使用的SQL Server DB中进行管理.通过新API发出的订单,库存应该保存在同一个数据库中.
问题:
c# sql-server membership-provider oauth-2.0 asp.net-web-api2
asp.net ×4
asp.net-mvc ×4
c# ×3
.net ×1
generics ×1
mobile ×1
mysql ×1
oauth-2.0 ×1
redirect ×1
registration ×1
returnurl ×1
sql-server ×1
user-profile ×1