当前位置: 首页 > 知识库问答 >
问题:

Exchange服务器-未经授权

王飞英
2023-03-14

我们有一个连接到Exchange服务器的MVC应用程序。我们使用以下代码连接到本地服务器以创建服务:

if (string.IsNullOrEmpty(Current.UserPassword))
        {
            throw new UnauthorizedAccessException("Exchange access requires Authentication by Password");
        }
        return new ExchangeService
            {
                Credentials = new NetworkCredential(Current.User.LoginName, Current.UserPassword),
                Url = new Uri(ConfigurationManager.AppSettings["ExchangeServiceUrl"]),
            };

这很好,但现在我们的IT部门正在将Exchange服务器迁移到云上,一些用户在云服务器上,而另一些用户在本地。所以我把代码改成:

if (string.IsNullOrEmpty(Current.UserPassword))
        {
            throw new UnauthorizedAccessException("Exchange access requires Authentication by Password");
        }
        var user = ConfigurationManager.AppSettings["ExchangeUser"];
        var password = ConfigurationManager.AppSettings["ExchangePassword"];
        var exchangeService = new ExchangeService(ExchangeVersion.Exchange2010_SP2)
        {
            Credentials = new NetworkCredential(user, password),
        };
        exchangeService.AutodiscoverUrl(Current.EmaiLuser + "@calamos.com", RedirectionCallback);
        exchangeService.Credentials = new NetworkCredential(Current.EmaiLuser + "@calamos.com", Current.UserPassword);
        return exchangeService;

我正在使用服务号进行自动发现(由于某种原因,它不适用于常规帐户),然后我正在将服务的凭据更改为登录的用户,因此他可以访问收件箱。问题是,随机地,服务器返回“请求失败。远程服务器返回错误:(401)未授权。”。我要求IT部门检查Exchange日志,但没有关于此错误的任何内容,所以我不知道如何修复它...

共有1个答案

通京
2023-03-14

你说的云是指Office365吗?

我正在使用服务帐户进行自动发现(由于某些原因,它无法与常规帐户一起使用)

对于云中的用户,你需要确保请求被发送到云服务器,也许启用跟踪https://msdn.microsoft.com/en-us/library/office/dd633676(v=exchg.80)。aspx,然后看看失败的请求被路由到哪里。从你所说的来看,你的发现总是指向你的内部服务器,这就是为什么基于云的用户的请求会失败。你需要有一种方法来识别云中的用户,我建议你只使用单个Office 365endpoint(例如,你不需要自动发现)https//outlook.office365.com/EWS/Exchange.asmx

 类似资料:
  • 问题内容: 我正在使用GCM服务从服务器推送信息。如果我使用浏览器密钥,它将成功消息显示为: {“ multicast_id”:4849013215736515938,“ success”:1,“ failure”:0,“ canonical_ids”:0,“ results”:[{“ message_id”:“ 0: 1348742583011905%2adac3a0f9fd7ecd“}]},

  • 我有一个使用SpringCloud配置的Spring Boot应用程序,我正在尝试从Bitbucket获取应用程序的配置文件。前一段时间我可以获取配置文件,但现在我在尝试通过配置服务器url访问时出错。 应用yml: 当我试图访问网址的应用程序显示一个错误-未授权: 有人知道发生了什么吗?我已经检查了bitbucket上的所有凭据和url。

  • 主要内容:1.概述,2.ExchangeChannel,3. ExchangeClient,4. ExchangeServer,5. 请求/响应模型,6. Handler1.概述 exchange 信息交换层:封装请求响应模式,同步转异步,以 Request, Response 为中心,扩展接口为 Exchanger, ExchangeChannel, ExchangeClient, ExchangeServer。 类图: 2.ExchangeChannel 继承 Channel 接口,信息交换

  • 我在下面设置Spring配置: 和Maven设置如下:

  • 我使用spring ide在本地机器嵌入式apache服务器上部署了spring boot web应用程序,并访问了一个带有错误令牌的url,在这种情况下,它会返回未经授权的访问错误401和托管异常处理抛出的特定错误消息,而如果我在独立但相同的apache服务器上部署相同的应用程序,它会给我500个内部服务器错误而不是401或任何其他服务器端错误。 我捕获的日志只有以下一行不同: 下面是我用来处理

  • 我有一个问题,当我安装库贝-dns插件。我的操作系统是CentOSLinux版本7.0.1406(核心) 我的api服务器配置: api服务器授权模式设置为AlwaysAllow 我的库贝-dns配置YAML文件是: 当我启动库贝-dns容器日志时: 几分钟后,吊舱坠毁。 我的kubernetes版本是: docker版本: 我的kubernetes服务配置:api服务器 控制器-管理器: 调度程