ServiceStack Razor 身份验证

2023-11-22

我正在查看 Rockstars 示例和 ServiceStack.Razor。

我如何将身份验证融入到 secure.cshtml 页面中。因此,如果需要,我可以将用户重定向到 Login.cshtml。

我只从 Social Bootstrap Api 示例中了解到,如果我混合 MVC 混合,我可以将 [authenticate()] 放在 ServiceStack Controller 中来实现这一点。

但是如果我只想要一个没有 .net MVC 的纯 SS 项目怎么办?


The 认证属性只是一个普通的 ServiceStack请求过滤器属性,即它适用于 MVC 和 ServiceStack。

应用此过滤器将返回401 未经授权对所有非 HTML 请求的响应。例如如果您使用 Ajax 调用此方法,您可以检测到此错误响应并在客户端上执行重定向。

从 ServiceStack v3.9.23+ 开始[Authenticate]属性将自动将所有身份验证错误重定向到~/login默认网址。

您可以在注册 AuthFeature 时覆盖此 url,例如:

Plugins.Add(new AuthFeature(...) { HtmlRedirect = "/path/to/my/login" });

这将适用于全球范围内的所有人[Authenticate]属性,或者您可以使用以下命令临时覆盖它:

[Authenticate(HtmlRedirect="/path/to/my/login")]

注意:属性是可继承的,因此您可以将其添加到安全服务类和所有子类将继承其行为。

手动重定向

要手动重定向未经授权的 HTML 请求,您可以使用以下命令进行自己的检查+重定向:

public object Secured(Request request) {
    if (!base.SessionAs<MyCustomSession>().IsAuthenticated)
        return new HttpResult(HttpStatusCode.Redirect, "Un Authorized") { 
           Headers = { {"Location", "/path/to/login" } } };
}

上述重定向还有一个 DRY 包装器,您可以使用它来代替:

public object Secured(Request request) {
    if (!base.SessionAs<MyCustomSession>().IsAuthenticated)
        return HttpResult.Redirect("/path/to/login");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ServiceStack Razor 身份验证 的相关文章

随机推荐

  • 如何将 Paytm 钱包集成到 Android 应用程序中? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我想将 Paytm 钱包集成到 Android 应用程序中作为支付选项 就像在 Uber 应用程序中一样 谁能帮我吗 提前致谢 Update Paytm 现已添加文档 https
  • iPhone 喜欢 WPF 项目中的红色徽章通知吗?

    I have a C WPF project which generates daily and weekly reports automatically I want to inform the user when new reports
  • 达特朗等待不止一个未来

    我想在未来的很多功能完成后做一些事情 但我不知道dart中的代码如何编写 代码是这样的 for var d in data d loadData then when all loaded do something here 但我不想一一等待
  • Ajax POST 方法将字符串中的“+”值转换为“”,为什么?

    我不明白为什么在 ajax 中 号会转换为 请解释一下 Use the encodeURIComponent 函数将您的数据转换为请求的有效编码数据 xhr open POST url true xhr send encodeURIComp
  • 使用 jmap(1.5) 从 java 核心转储中提取信息

    长话短说 一些同事正在运行一个相当旧的设置 x86 64 中的 oc4j jdk1 5 6 其应用程序恰好是关键任务 他们最近尝试部署应用程序的新版本 但一旦他们这样做 java 进程就会抛出核心转储并死掉 问题是 核心转储似乎没问题 gd
  • MVC 与 Web 应用程序的实际模式是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 造成混乱的原因是网上流传着
  • div、px、dpi 之间的关系

    如果在布局 xml 文件中 我将大小设置为 例如 12dip mdpi 中总是 12px hdpi 中总是 18px 吗 那么 dip 对于 mdpi 是否总是正确 并且对于其他密度也会相应地缩放 这个问题完全由官方文档 div px 和
  • 如何在 D2 (Phobos) 中获得单次击键?

    是否有一种简单的跨平台方法可以使用 Phobos 在 D2 中进行单次击键 例如 按任意键继续 提示 或者 Brainfuck 解释器 我尝试过的所有方法都需要在传递输入之前按 Enter 键 例如 getchar 在 Windows 上使
  • 运行循环结束——自动释放池恢复

    据我了解 一旦自动释放池被释放 自动释放的对象就会被清理 现在 自动释放池将在运行循环结束时释放 我的问题是 如果在我的类中我没有创建自定义自动释放池并对该类中的某些对象调用自动释放方法 那么这些对象在什么时候会被恢复 运行循环结束 是否意
  • 奇怪的 GCC 短 int 转换警告

    我有一些 C 代码 其内容如下 short int fun16 void short int a 2 short int b 2 return a b 当我尝试用 GCC 编译它时 我收到警告 warning conversion to s
  • 如何使用 JavaScript 下载大文件

    我需要使用 JavaScript 下载一个大文件XMLHttp请求 or fetch无需先将文件保存在 RAM 内存中 正常的链接下载对我来说不起作用 因为我需要在请求的标头中发送不记名令牌 我可以设法下载一个文件 但是这个 解决方案 它首
  • 使用 phpexcel 填充下拉列表

    我遇到了以下问题 我试图从数据库中获取一些结果 并且想将结果插入到下拉列表中 example 文件中有以下示例 objValidation gt setFormula1 Item A Item B Item C 因此结果必须以逗号分隔 总结
  • Java:将控制台光标向上移动一行

    首先让我澄清一下 我是编程新手 希望我使用正确的术语 我使用的是System out print 打印到Windows控制台的方法 System out print Backspace b Output Backspace b所以如果我输入
  • 如何检查哪个图像链接到android中的ImageView?

    好吧 我的应用程序中有一个按钮和一个 ImageView 我想做的是 当我按下按钮时 ImageView 上的图像将会改变 我只有两张图片文件 我想做的是 如果第一张图片链接到 ImageView 则通过单击按钮将其更改为 pic2 如果链
  • 在两个轴上翻转 NSImage

    我正在尝试翻转使用 NSImageBitmapRep 表示创建的 NSImage 经过一番挖掘 翻转 Quicktime 预览和捕获 and 镜像 CIImage NSImage 我通过 CIImage 尝试了两种方法 并对这两个因素应用
  • Python 中的游程长度编码

    我正在尝试编写一个简单的Python算法来解决这个问题 你能帮我弄清楚该怎么做吗 如果任何字符重复超过 4 次 则整个集合 重复的字符应替换为斜杠 后跟 2 位数字 即这一系列重复字符的长度 和性格 例如 aaaaa 将被编码为 05a 自
  • 解析 SVG 并将其添加到 svg 元素

    我有一个服务 我想将 SVG 部件动态添加到 g 元素 这是服务返回的内容
  • 如何在正则表达式中忽略大小写?

    我有一个 ASP NET MVC 应用程序 有一个名为 File 的实体 它有一个名为 Name 的属性 using System ComponentModel DataAnnotations public class File Regul
  • 由于目标机器主动拒绝而无法建立连接(PHP / WAMP)

    Note 我意识到这可能被视为重复 但我查看了其他回复 但他们没有为我解决问题 我最近在 Windows 7 上安装了带有 mysql 插件的 Zend Studio 和 Zend Server 我不是一个合格的服务器管理员 但也不是完全无
  • ServiceStack Razor 身份验证

    我正在查看 Rockstars 示例和 ServiceStack Razor 我如何将身份验证融入到 secure cshtml 页面中 因此 如果需要 我可以将用户重定向到 Login cshtml 我只从 Social Bootstra