iis [NAV/ASP.NET]Web服务凭据

zpqajqem  于 2022-11-24  发布在  .NET
关注(0)|答案(1)|浏览(164)

我已经创建了一个Dynamics NAV 2016代码单元Web服务(SOAP流),我想在ASP.NET4 Web应用程序中使用它。
对于身份验证,我需要使用Windows凭据。这是一个非常简短的代码示例。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace CleanWebApp
{
    using GridRef; //Web Reference
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                Grid grid = new Grid(); //New instance of the Web Service
                grid.UseDefaultCredentials = true; //Use the DefaultCredentials (system credentials of the application)

                //Create a table rows and cells based on the return values of the Codeunit functions
                int columns = grid.SendColumnsToWeb();
                int rows = grid.SendRowsToWeb();

                for (int i = 0; i < rows; i++)
                {
                    TableRow tr = new TableRow();
                    for (int j = 0; j < columns; j++)
                    {
                        TableCell tc = new TableCell();
                        tc.Controls.Add(new LiteralControl(grid.SendDescToWeb(j + 1, i + 1)));
                        tr.Cells.Add(tc);
                    }
                    DynamicTable.Rows.Add(tr);
                }
            }
[...]

当我从Visual Studio运行此代码时,Web应用程序通过IIS Express启动,并且一切正常。现在我将此项目发布到硬盘并使用IIS Windows功能运行它。浏览网站时,出现http status 401 unauthorized错误。
我的IIS管理器中启用了Windows身份验证。
在system.web块的web.config文件中,我添加了<authentication mode="Windows">
当我提供硬编码的凭据(用户、密码、域)并使用此代码进行身份验证时,grid.Credentials = new System.Net.NetworkCredential(user, password, domain);一切都正常工作,只是凭据是以编程方式提供的...
有人能解决这个问题吗?
先谢了

ebdffaop

ebdffaop1#

您是否检查了Internet Explorer设置?在“安全”选项卡下,您可以调整安全区域。您应该检查一个用于用户身份验证的选项。

相关问题