gpt4 book ai didi

c# - 如何识别,来自 URL 的身份验证类型是什么?

转载 作者:行者123 更新时间:2023-11-30 21:54:17 25 4
gpt4 key购买 nike

我正在编写一个 C# 应用程序以从 URL 获取一些信息。

Url 是在我们本地 Intranet 环境中的 IIS 中托管的 Web 应用程序

Web 应用程序是使用 ASP.NET (C#) 开发的。

IIS 中,这些被配置为 FormsWindows 身份验证。

有没有办法确定相应的 Web 应用程序 URL 是什么类型的身份验证?

这就是我到目前为止所得到的!

    using System;
using System.IO;
using System.Net;
public class Program
{
public static void Main()
{
var url = "http://www.contoso.com/default.html";
WebRequest request = WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse ();

//he i need to know what type of authentication the url

Console.WriteLine (response.StatusDescription);

Stream dataStream = response.GetResponseStream();

StreamReader reader = new StreamReader (dataStream);

string responseFromServer = reader.ReadToEnd();

reader.Close ();
dataStream.Close ();
response.Close ();
}
}

Demo

最佳答案

通过 url 猜测是不准确的。但是您可以使用 header 信息进行有根据的猜测。 Windows 和基本身份验证为您提供了足够的信息。因此,首先检查那些。

下面是判断认证类型的头信息。首先检查基本和Windows。如果不是基本的或窗口,您可以默认使用表单,并且有重定向。如果没有重定向,则没有身份验证。

Windows 身份验证

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Negotiate
WWW-Authenticate: NTLM

基本身份验证

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Basic realm="test.local"

表单验证

HTTP/1.1 302 Found
Location: /Account/Login?ReturnUrl=%2f

关于c# - 如何识别,来自 URL 的身份验证类型是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33214218/

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