首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Azure移动应用程序认证Nancy

使用Azure移动应用程序认证Nancy
EN

Stack Overflow用户
提问于 2017-03-03 23:27:28
回答 1查看 166关注 0票数 6

我看到,我可以添加南希到我的Azure移动应用程序。http://www.strathweb.com/2014/02/running-owin-pipeline-new-net-azure-mobile-services/,但是我如何为南希添加身份验证呢?这里的目标是能够同时使用同一台服务器的web应用程序和移动应用程序。

:如果Nancy需要身份验证,跳到~/..auth/(例如),然后返回到原始页面。

我所处的

  1. 创建新的Azure移动应用程序ASP.NET应用程序
  2. 南希补充说
  3. 删除默认的MobileAppConfig并用 新MobileAppConfiguration() .MapApiControllers() .AddTables(新MobileAppTableConfiguration() .MapTableControllers() .AddEntityFramework() ) .AddPushNotifications() .MapLegacyCrossDomainController() .ApplyTo(config);
  4. 创建一个IndexModule并确认南希是否工作 公共IndexModule() { Get"/“=_ =>”Hello;}
  5. 创建一个AdminModule,RequiresAuthentication在安装Nancy.Authentication.Forms之后 public AdminModule():base("admin") { Get"/“=_ => { this.RequiresAuthentication();返回"This is admin";};}
  6. 可能是做错了事,但我有 受保护覆盖ConfigureRequestContainer(TinyIoCContainer容器,NancyContext上下文){base.ConfigureRequestContainer(容器,上下文);container.Register();}被保护覆盖空洞RequestStartup(TinyIoCContainer容器,IPipelines管道,NancyContext上下文){base.RequestStartup(容器,管道,上下文);var formsAuthConfig =新FormsAuthenticationConfiguration { RedirectUrl =“~/..auth/login/aad”,UserMapper = container.Resolve(),};FormsAuthentication.Enable(管道,UserMapper)};

这会将用户发送到右侧的auth页面,但是当zumo返回它时,(1)返回一个带有令牌的回调,(2)给出一个指向“网站”的链接,该网站是主站点,而不是returnUrl,(3)仍然不能工作。

更新。看起来Nancy.Forms.Authentication在这方面是个死胡同。我可以使用来自UseCookieAuthentication的Owin.Security吗?

Update2.我摆脱了Nancy.Forms.Authentication。看起来,当Zumo完成身份验证时,实际上已经设置了owin server.user。

代码语言:javascript
复制
    protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines)
    {
        base.ApplicationStartup(container, pipelines);

        Csrf.Enable(pipelines);
        pipelines.BeforeRequest.AddItemToStartOfPipeline(FlowPrincipal);
    }

    private Response FlowPrincipal(NancyContext context)
    {
        var env = Get<IDictionary<string, object>>(context.Items, NancyMiddleware.RequestEnvironmentKey);
        if (env != null)
        {
            var principal = Get<IPrincipal>(env, "server.User") as ClaimsPrincipal;
            if (principal != null)
            {
                context.CurrentUser = new ClaimsPrincipalUserIdentity(principal);
            }
        }

        return null;
    }

将给有效的可用用户。但是,如何触发登录和重定向是另一个问题。

Update3. i能够强制使用Azure中的设置进行登录。

令人惊讶的是,这也解决了重定向问题。不确定它如何影响SignalR/Zumo表,但希望它能够检查头部,而不强制登录这些表。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-06 18:44:45

您所引用的博客文章是针对Azure Mobile服务的,而不是Azure Mobile应用程序。

看看我书的第六章- http://aka.ms/zumobook。它显式地向您展示了如何处理各种平台的应用程序服务身份验证。Nancy并不是其中之一,但是MVC版本应该可以帮助您。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42590132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档