- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的任务是创建一个 Intranet Web 应用程序。它最终将由位于 NancyFx API 之上的 SPA 前端(可能是 Angular)组成。
坦率地说,我对使用 Windows 用户进行身份验证的经验绝对为零,并且由于通常不推荐(正确的),因此很难找到这方面的具体信息。
我想根据发送每个请求的用户授权用户。但是,我不知道如何从南希的每个请求上下文中访问用户信息。我已经看过了:
public class IndexModule : NancyModule
{
public IndexModule()
{
Get["/"] = parameters =>
{
var User = this.Context.CurrentUser;
return View["index"];
};
}
}
不幸的是,this.Context.CurrentUser 似乎从未被填充并且始终为 null
。
如何使用 Windows 用户填充每个请求上下文?
或者,我做错了吗?在南锡处理 Windows 用户的推荐方法是什么?我已经研究了两天多了,我很紧张地告诉我的老板我不知道如何处理这个相当重要的问题。
最佳答案
Nancy 提供了 NancyContext 类型来为您提供调用发生的上下文。
不幸的是,Nancy 不包含开箱即用的 windows 用户。事实上,Nancy 对 IUserPrincipal 类型一无所知,该类型通常用于表示 Windows 身份。
好消息是 Nancy 确实与 Owin 集成,并且 Owin 提供了它自己的包含此信息的上下文,此外,这将被注入(inject)到 Nancy 上下文中,无需额外费用!
要实现这一点,您需要做的是安装 Nancy.Owin nuget 包,然后从 Owin“启动”类调用扩展 IAppBuilder.UseNancy():
public class Startup
{
public void Configuration(IAppBuilder app)
{
// other owin config here...
// Register Nancy with Owin middleware...
app.UseNancy();
}
}
这将使您能够像这样从 NancyContext 访问 Owin 环境:
var owinEnv = context.GetOwinEnvironment(); // context = your NancyContext
var windowsUser = (IPrincipal) owinEnv["server.User"];
或者,如果您不喜欢 Owin,也可以这样做:https://stackoverflow.com/a/28976742/569662
关于c# - 在 NancyFx 上下文中获取 Windows 用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35760334/
我在控制台项目中创建了一个简单的自托管 Nancy 站点,其中包含一个模块。在测试它时,我注意到每个请求都会调用模块构造函数。这让我很困惑,因为 ctor 也是路由注册的地方。这对我来说没有意义,我一
我喜欢 NancyFX 错误自定义页面。不幸的是,除了错误之外,急需的客户不愿看到绿色怪物。有什么方法可以从几乎完美的 nancyfx 错误消息页面中删除图像吗? 最佳答案 您实现了 IStatusC
我想了解为什么我的示例项目中的 nancyFx 无法处理并行查询。我正在运行 Windows 8、VS2015、C#、fiddler 4。 这是我的示例服务: class Program {
我想弄清楚 NancyFx 请求容器是如何工作的,所以我创建了一个小测试项目。 我创建了一个这个界面 public interface INancyContextWrapper { Nancy
我正在尝试了解 NancyFX 中的 DynamicDictionary,它看起来很酷。有谁知道一篇博客文章或类似的文章,它贯穿了它的内部结构? 我需要一个 propertybag 来传递我不知道其内
当 NancyFx 应用 Bind<>()在带有 DateTime 的对象上属性,它创建了一个 Local日期时间,而不是 Utc日期时间。 这是从客户端 javascript 接收到的正文(我单独反
这可能是非常基本的问题。但我想知道不同的 nancyfx 托管选项。基本上我读了一篇关于在 heroku 上托管 Nancyfx 网络应用程序的文章,他们提到这种类型的托管需要自托管。通常我使用 Na
我想从父目录提供我的静态文件,这样我就可以在应用程序仍在运行时修改它们以便于开发。我试图像这样在我的 Bootstrapper 中添加静态内容约定: this.Conventions.StaticCo
我的特定上下文是一个自托管的 Nancy 应用程序,我在其中使用 RavenDb 嵌入式文档数据库。 我的 Bootstrap 看起来像这样: public class MyBootstrapper
我正在尝试使用 Nancy 让我的自托管服务在出现未捕获的异常时返回 json 格式的错误。然而,我总是得到回应: {"readyState":4,"status":404,"statusText":
我正在使用 Nancy 编写一个简单的 Web 应用程序。至少有一个请求会导致未知长度的流,因此我无法提供 Content-Length .我想用 Transfer-Encoding: chunked
我试图通过 Nancy.Testing.Browser 对象传递路由参数(不是查询参数!)。 我了解(现在)如何向/从我的 NancyModule 发送和使用查询字符串: var customerRe
我真的很习惯 ASP.NET MVC 方法:用相应的属性注释模型,MVC 会验证它并更新 ModelState.Errors,ModelState 在 View 上可用,因此可以向用户显示错误。 我还
根据我在源代码中看到的内容,RequiresAuthentication() 对整个模块进行身份验证检查。有什么方法可以按路线执行此操作吗? 最佳答案 我遇到了同样的问题。然而事实证明,Require
编译 View 时出错 Error compiling template: views/devices.cshtml Errors: [CS0234] Line: 3 Column: 27 -
使用 nancyfx 是否可以使用发布数据重定向到另一种方法? 在我的示例中,在用户注册后我想自动执行登录(我知道还有其他方法可以实现此目的,我可以从 Post["/login"] 中提取代码并从两种
我们使用 NancyFx 来托管单页应用程序和多个 ReST 端点。代码和测试使用相同的 Bootstrap ,唯一的区别是在测试中我们使用测试框架中的 Nancy Browser。 如果我从网站返回
我在我的应用程序中运行一个自托管的 NancyFX 网络服务器。现在我托管了一个模块: public class MetricsModule : NancyModule { private I
我最近部署到 http://domainshop.apphb.com/使用以下 NuGet 包的简单 ASP.NET 应用程序: Nancy.Hosting.Aspnet Dapper MySql.D
我有一个应用程序,它有一个基于 NancyFx 的休息服务,我发现它是一个非常酷的框架。但是我在阻止它方面遇到了很大的问题。我的主机类如下所示: public class RestHost : ISt
我是一名优秀的程序员,十分优秀!