将C#转换为VB以进行OWIN单点登录

问题描述 投票:0回答:1

我正在尝试使用单点登录,使用OWIN库。我有的代码是MVC C#。我正在尝试将其翻译为VB中的Form网站。这是C#代码,有效:

public void ConfigureAuth(IAppBuilder app)
{
    app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
    app.UseCookieAuthentication(new CookieAuthenticationOptions());
    app.UseWsFederationAuthentication(
        new WsFederationAuthenticationOptions
        {
            Wtrealm = realm,
            MetadataAddress = metadata,
            Notifications = new WsFederationAuthenticationNotifications
            {
                AuthenticationFailed = context =>
                {
                    context.HandleResponse();
                    context.Response.Redirect("Home/Error?message=" + context.Exception.Message);
                    return Task.FromResult(0);
                }
            }
        });
}

这是VB.Net代码:

Public Sub ConfigureAuth(app As IAppBuilder)
    app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType)
    app.UseCookieAuthentication(New CookieAuthenticationOptions())
    Dim authOption As WsFederationAuthenticationOptions = New WsFederationAuthenticationOptions()

    app.UseWsFederationAuthentication(New WsFederationAuthenticationOptions() With {
        .Wtrealm = realm,
        .MetadataAddress = metadata
    })

End Sub

我认为我没有正确翻译UseWsFederationAuthentication代码,因为我遗漏了Notifications的东西,因为我无法弄清楚如何翻译它。虽然没有抛出任何错误,但它没有正确地进行身份验证。任何人都可以告诉我翻译是否存在问题以及如何解决?

asp.net vb.net
1个回答
0
投票

我无法真正测试它。但是,试试这个:

Public Sub ConfigureAuth(app As IAppBuilder)
  app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType)
  app.UseCookieAuthentication(New CookieAuthenticationOptions())

  app.UseWsFederationAuthentication(New WsFederationAuthenticationOptions() With {
     .Wtrealm = realm,
     .MetadataAddress = metadata,
     .Notifications = New WsFederationAuthenticationNotifications() With {
                          .AuthenticationFailed = Function(context)
                              context.HandleResponse()
                              context.Response.Redirect("Home/Error?message=" + context.Exception.Message)
                              Return Task.FromResult(0)
                          End Function
     }
  })
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.