gpt4 book ai didi

asp.net-mvc-2 - 如何让 DotNetOpenAuth 打开用于身份验证的弹出窗口?

转载 作者:行者123 更新时间:2023-12-04 06:44:09 27 4
gpt4 key购买 nike

我对 Web 开发比较陌生,所以这可能是一个菜鸟问题。我正在尝试建立一个 ASP.NET MVC 网站来实现 DotNetOpenAuth 作为 OpenID 依赖方。

现在一切都在运行,所以这是非常令人兴奋的。我的目标是让 OpenID 身份验证在弹出窗口中进行。当您将 WebForms 与 DNOA 自定义控件一起使用时,这似乎是默认行为,但我无法在 MVC 中弄清楚。

我以为我已经接近这个了:

var request = OpenIdRp.CreateRequest(id);
request.AddExtension(new UIRequest(Mode = UIModes.Popup));

但是 UIRequest 的 Mode 字段是只读的。

有人知道如何创建一个请求来告诉 OpenID 提供者打开一个弹出窗口吗?

谢谢你的帮助。到目前为止,我一直无法追踪到任何此类事件的样本。

最佳答案

在我使用的 v.3.4.5 上,UIRequest 的 Mode 属性同时具有 getter 和 setter。

var req = openid.CreateRequest(openid_identifier);                      

// Add UI Request
if (req.DiscoveryResult.IsExtensionSupported<UIRequest>())
{
req.AddExtension(new UIRequest()
{
Mode = UIModes.Popup
});

您必须自己创建弹出窗口。身份验证发生后,您应该刷新父窗口并关闭弹出窗口。
在提交表单时,我有
<form action="/Account/OpenIdLogOn" target="popupWin" onsubmit="return openWindow('/Account/OpenIdLogOn', 'popupWin', 500, 500);">

在哪里
function openWindow(url, wname, width, height) {
window.open(url, wname, "height=" + height + ",width=" + width + "location = 0, status = 1, resizable = 0, scrollbars=1, toolbar = 0");
return true;
}

在结果 View 中,我有以下 javascript
    <script type="text/javascript">
$(function () {
if (window.opener) {
window.opener.location.href = window.opener.location.href;
window.close();
}
});
</script>

我希望这是有道理的。

关于asp.net-mvc-2 - 如何让 DotNetOpenAuth 打开用于身份验证的弹出窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3907842/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com