C# ServiceStack中的用户身份验证
我没有在servicestack中获得身份验证和授权概念。 我一直在看pluralsight教程,但我仍然不了解如何从现有sql server数据库验证用户名和密码。C# ServiceStack中的用户身份验证,c#,asp.net,sql-server,authentication,
servicestack,C#,Asp.net,Sql Server,Authentication,
servicestack,我没有在servicestack中获得身份验证和授权概念。 我一直在看pluralsight教程,但我仍然不了解如何从现有sql server数据库验证用户名和密码。 例如,如果我们使用SQL server对asp.net中的用户进行身份验证。在这里,我们提供了connectionstring,然后在按钮后面编写查询,但在服务堆栈中,在不知道connectionstring和用户如何登录的情况下,插件将如何工作 请帮助我:(如果您不确定ServiceStack身份验证是如何工作的,我建议您看看其
例如,如果我们使用SQL server对asp.net中的用户进行身份验证。在这里,我们提供了connectionstring,然后在按钮后面编写查询,但在服务堆栈中,在不知道connectionstring和用户如何登录的情况下,插件将如何工作
请帮助我:(如果您不确定ServiceStack身份验证是如何工作的,我建议您看看其中一些是如何工作的: 要说明与ServiceStack的身份验证集成,请参阅下面启用身份验证的实时演示:
-
- Twitter、Facebook、谷歌、LinkedIn和认证认证
-
- Twitter、Facebook、GitHub、谷歌、雅虎、LinkedIn和认证认证
-
- Twitter、Facebook、GitHub、谷歌、雅虎、LinkedIn、VK、凭据和Windows身份验证
-
- Twitter和GitHub OAuth
-
- 推特、Facebook、雅虎和认证认证
IDbConnectionFactory
,该工厂配置了要使用的DB ConnectionString和DB类型,例如:
container.Register<IDbConnectionFactory>(c => new OrmLiteConnectionFactory(
dbConnectionString, PostgreSqlDialect.Provider));
container.Register<IAuthRepository>(c =>
new OrmLiteAuthRepository(c.Resolve<IDbConnectionFactory>()));
//Create any UserAuth tables that are missing
container.Resolve<IAuthRepository>().InitSchema();
public class CustomCredentialsAuthProvider : CredentialsAuthProvider
{
public override bool TryAuthenticate(IServiceBase authService,
string userName, string password)
{
//Add here your custom auth logic (database calls etc)
//Return true if credentials are valid, otherwise false
}
public override IHttpResult OnAuthenticated(IServiceBase authService,
IAuthSession session, IAuthTokens tokens,
Dictionary<string, string> authInfo)
{
//Fill IAuthSession with data you want to retrieve in the app eg:
session.FirstName = "some_firstname_from_db";
//...
//Call base method to Save Session and fire Auth/Session callbacks:
return base.OnAuthenticated(authService, session, tokens, authInfo);
//Alternatively avoid built-in behavior and explicitly save session with
//authService.SaveSession(session, SessionExpiry);
//return null;
}
}