servicestack,C#,Authentication,servicestack" /> servicestack,C#,Authentication,servicestack" />

C# 使用ServiceStack 4.5.14进行身份验证

C# 使用ServiceStack 4.5.14进行身份验证,c#,authentication,servicestack,C#,Authentication,servicestack,我正在使用SocialBootstrap API示例(使用ServiceStack 4.5.14),并尝试让身份验证工作起来。注册工作正常,在DB中创建的用户帐户没有任何问题,但是当我尝试使用新创建的用户登录时,我得到了“无效用户名或密码”。当我逐步通过我的代码时,会传递正确的用户名和密码。我的注册代码如下所示: using (var authService = HostContext.ResolveService<AuthenticateService>()) { //au

我正在使用SocialBootstrap API示例(使用ServiceStack 4.5.14),并尝试让身份验证工作起来。注册工作正常,在DB中创建的用户帐户没有任何问题,但是当我尝试使用新创建的用户登录时,我得到了“无效用户名或密码”。当我逐步通过我的代码时,会传递正确的用户名和密码。我的注册代码如下所示:

using (var authService = HostContext.ResolveService<AuthenticateService>())
{
    //authenticate with servicestack
    var response = authService.Authenticate(new Authenticate
    {
        provider = CredentialsAuthProvider.Name,
        UserName = model.Username,
        Password = model.Password,
        RememberMe = model.RemeberMe
    });

    ...
使用(var authService=HostContext.ResolveService())
{
//使用servicestack进行身份验证
var response=authService.Authenticate(新的Authenticate
{
provider=CredentialAuthProvider.Name,
UserName=model.UserName,
Password=model.Password,
RememberMe=model.RemeberMe
});
...
它点击authenticate方法,然后转到:

container.Register<IDbConnectionFactory>(
    new OrmLiteConnectionFactory(connStr, //ConnectionString in Web.Config
        SqlServerDialect.Provider)
    {
        ConnectionFilter = x => new ProfiledDbConnection(x, Profiler.Current)
    });
container.Register(
新建OrmLiteConnectionFactory(connStr,//Web.Config中的ConnectionString
SQLServerDialogue.Provider)
{
ConnectionFilter=x=>newprofileddbconnection(x,Profiler.Current)
});
在AppHost.cs中。在此之后,它抛出“无效用户名或密码错误”。 我不明白为什么它不能进行身份验证。除了使用SQL Server而不是Postgres之外,代码基本上与示例相同。我知道我的SQL连接可以工作,连接字符串也可以,因为注册工作完美无瑕。我只是不知道我还能做些什么来让登录工作。有人能帮我摆脱一些麻烦吗关于我做错了什么或其他什么,我可以试着找出我的错误吗?

我刚刚尝试了该项目。安装了包,替换了
或mliteconnectionfactory
,以使用SQL Server:

container.Register<IDbConnectionFactory>(
    new OrmLiteConnectionFactory(connString, SqlServerDialect.Provider)
    {
        ConnectionFilter = x => new ProfiledDbConnection(x, Profiler.Current)
    });
container.Register(
新的OrmLiteConnectionFactory(connString、SQLServerDialante.Provider)
{
ConnectionFilter=x=>newprofileddbconnection(x,Profiler.Current)
});
然后就可以用电子邮件
test@gmail.com
和密码
测试
直接登录:


注销和登录也可以正常工作。

最初我使用的是4.0.56。我刚刚升级到5.0.2。5.02中是否有任何东西会阻止此功能正常工作?我处理的身份验证是否正确?我知道我在authService中传递了正确的用户名和密码。身份验证方法,但它失败了。我不确定我能做什么o调试该问题。是否需要检查某些内容以确保其设置正确?@user2033791我已在中升级了所有SocialBootstrapApi deps,它将继续按预期工作。如果使用服务器创建并替换connectionString,它应该可以工作。如果失败,请尝试删除所有UserAuth表,以使ServiceStack从干净的状态启动slate.我来试一试。谢谢,我已经下载了Mvc项目:。当我尝试使用代码时:container.Register(new-OrmLiteConnectionFactory(connStr,sqlserverdial.Provider){ConnectionFilter=x=>new-ProfiledDbConnection(x,Profiler.Current)};它抱怨ProfiledDbConnection并说它不存在。而且看起来MVC项目缺少它的所有ServiceStack引用。我需要加载什么程序集才能获得ProfiledDbConnection?谢谢,现在一切正常。我使它与MVC项目匹配,它开始工作。