gpt4 book ai didi

c# - 在 MVC4 应用程序提示输入域凭据的 try-catch block 中使用 StringBuilder

转载 作者:行者123 更新时间:2023-11-30 16:16:27 24 4
gpt4 key购买 nike

所以我有一个奇怪的问题。我在 MVC4 中使用 C#。我关闭了匿名身份验证并打开了域身份验证。这个问题发生在我的本地系统(使用本地 IIS 进行调试)和远程服务器上。在正常情况下,身份验证在两个系统上自动且正确地工作。

我有两个 C# MVC4 应用程序 (.NET 4.5),它们在 try-catch block 中使用 StringBuilder 对象。我在两个应用程序中都注意到,一个带有 try block ,另一个在 catch 中,如果引用了 StringBuilder,系统会提示输入域凭据并且不会排除我的凭据,最终放弃并因以下错误而失败:

0: error
12030 -- connection error or connection reset
12031 -- connection error or connection reset

搜索引擎揭示了更多关于错误的信息:

ERROR_WINHTTP_CONNECTION_ERROR 12030 The connection with the server has been reset or terminated, or an incompatible SSL protocol was encountered. For example, WinHTTP version 5.1 does not support SSL2 unless the client specifically enables it.

Error Code 12031 FTP Connection to the server was reset.. could not make a connection.

这些都没有真正确定我的问题,而且似乎与权限问题的关系比真正的问题更相关。此外,这些错误会覆盖我的描述性错误,因此我失去了我真正希望在客户端中看到的真实错误。

我已经在我的常规域帐户和更高权限的域管理员帐户下尝试过此操作。两者都不起作用。我应该提到我在这个例子中使用了 Telerik 的新测试版调度程序控件,但它发生在另一个 Telerik 项目下。但是,该问题与使用 Telerik 进行任何操作无关。

使用domain auth,这个例子仍然提示身份验证:

public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";


return View();
}
}

public ActionResult someAjax()
{
try
{
throwAnError();
}
catch (Exception e)
{
string msg = returnErrorMsg(e);

return new HttpStatusCodeResult(
System.Net.HttpStatusCode.InternalServerError, msg);
}

return Json("I sent a valid value");
}

string throwAnError()
{
throw new Exception("Something bad happened");
}

string returnErrorMsg(Exception exc)
{
//return exc.Message; // this doesn't prompt for credentials.

StringBuilder sbError = new StringBuilder();
sbError.AppendLine(exc.Message);
return sbError.ToString();
}
}

在 Index.cshtml 文件中(我在其他地方包含了 jquery 和 Index.js):

<button id="clickBtn">My Button</button>
<div id="value"></div>

索引.js:

$("#clickBtn").click(function () {
$.ajax({
url: '/Home/someAjax',
success: function (data) {
$("#value").text(data);
},
contentType: 'application/json'
})
.error(function (textStatus, errorThrown) {
$("#value").text(textStatus);
});
});

最佳答案

AppendLine 更改为 Append:

string returnErrorMsg(Exception exc)
{
//return exc.Message; // this doesn't prompt for credentials.

StringBuilder sbError = new StringBuilder();
sbError.Append(exc.Message);
return sbError.ToString();
}

这应该可以解决问题。您将进入低级别,因此在结束螺丝响应格式时额外的“\r\n”。

关于c# - 在 MVC4 应用程序提示输入域凭据的 try-catch block 中使用 StringBuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18279040/

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