首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

asp.net web窗体访问令牌中的Microsoft图表过期-如何在web窗体应用程序而不是MVC中刷新令牌

在ASP.NET Web窗体应用程序中,如果使用Microsoft图表库生成图表,并且访问令牌过期,可以通过以下步骤在Web窗体应用程序中刷新令牌:

  1. 首先,确保你已经在Azure门户上创建了一个应用程序,并且已经获取到了有效的客户端ID和客户端机密。
  2. 在Web.config文件中,添加以下配置节,用于存储Azure AD的相关配置信息:
代码语言:txt
复制
<configuration>
  <appSettings>
    <add key="ida:ClientId" value="YourClientId" />
    <add key="ida:ClientSecret" value="YourClientSecret" />
    <add key="ida:Authority" value="https://login.microsoftonline.com/YourTenantId" />
    <add key="ida:RedirectUri" value="https://localhost:44300/Default.aspx" />
  </appSettings>
</configuration>
  1. 在Global.asax文件中,添加以下代码,用于在应用程序启动时注册Microsoft图表库的刷新令牌事件处理程序:
代码语言:txt
复制
protected void Application_Start(object sender, EventArgs e)
{
    Microsoft.IdentityModel.Logging.IdentityModelEventSource.ShowPII = true;
    TokenCache.DefaultShared = new TokenCache();
    Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext authContext =
        new Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext(ConfigurationManager.AppSettings["ida:Authority"], TokenCache.DefaultShared);
    authContext.TokenCache.Clear();
    Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredential credential =
        new Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredential(ConfigurationManager.AppSettings["ida:ClientId"], ConfigurationManager.AppSettings["ida:ClientSecret"]);
    authContext.AcquireTokenSilentAsync("https://graph.microsoft.com", credential, new Microsoft.IdentityModel.Clients.ActiveDirectory.UserIdentifier(userObjectID, Microsoft.IdentityModel.Clients.ActiveDirectory.UserIdentifierType.UniqueId));
}
  1. 在需要刷新令牌的地方,例如在生成图表的代码中,添加以下代码,用于刷新令牌:
代码语言:txt
复制
Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext authContext =
    new Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext(ConfigurationManager.AppSettings["ida:Authority"], TokenCache.DefaultShared);
Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredential credential =
    new Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredential(ConfigurationManager.AppSettings["ida:ClientId"], ConfigurationManager.AppSettings["ida:ClientSecret"]);
Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationResult result =
    await authContext.AcquireTokenSilentAsync("https://graph.microsoft.com", credential, new Microsoft.IdentityModel.Clients.ActiveDirectory.UserIdentifier(userObjectID, Microsoft.IdentityModel.Clients.ActiveDirectory.UserIdentifierType.UniqueId));
string accessToken = result.AccessToken;

以上代码中,YourClientIdYourClientSecret需要替换为你在Azure门户上创建应用程序时获取到的客户端ID和客户端机密。YourTenantId需要替换为你的Azure AD租户ID。https://localhost:44300/Default.aspx是你的应用程序的重定向URI。

这样,在ASP.NET Web窗体应用程序中,当Microsoft图表访问令牌过期时,会自动刷新令牌,并获取到新的访问令牌,以确保图表的正常生成。

推荐的腾讯云相关产品:腾讯云身份认证服务(CAM)和腾讯云API网关。CAM提供了身份认证和访问管理服务,可以用于管理应用程序的访问令牌和权限。API网关可以用于对外提供API接口,并进行访问控制和安全防护。

腾讯云身份认证服务(CAM)介绍链接:https://cloud.tencent.com/document/product/598

腾讯云API网关介绍链接:https://cloud.tencent.com/product/apigateway

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

关于 ASP.NET 内存缓存你需要知道的 10 点

缓存机制的主要目的是提高应用程序的性能。作为 ASP.NET 开发人员,你可能会意识到 ASP.NET Web 窗体以及 ASP.NET MVC 可以使用 Cache 对象缓存应用程序的数据。...在进一步阅读之前,你先创建一个基于 Web 应用程序项目模板的新的 ASP.NET Core 应用程序。 ? 然后按照下面提到的步骤逐一构建和测试由内存缓存提供的各种功能。 1....内存缓存需要在启动类 Startup 中启用一下 不同于 ASP.NET Web 窗体和 ASP.NET MVC,ASP.NET Core 没有内置的 Cache 对象,可以拿来在控制器里面直接使用。...一个绝对的过期设置意味着该缓存项会在严格指定的日期和时间点被移除,而滚动过期设置则意味着它在给定的一段时间量处于空闲状态(也就是没人去访问)之后被移除。...如果令牌处于活动状态的话,则缓存项就会在缓存中维持,而如果令牌被取消掉了,则该缓存项就将从缓存中删除掉。一旦缓存项从缓存中删除掉了,MyCallback 就像之前一样被调用。

1.2K20
  • Coolite Toolkit非常棒的控件

    Coolite Toolkit介绍 Coolite Toolkit 是一个支持ASP.NET AJAX的Web控件。...网络资源 http://www.coolite.com http://mvc.coolite.com 使用场景 Coolite Toolkit非常适合做web应用程序的开发,它提供了很多专业的Asp.net...,MenuBar,PictureBox都用统一的样式非常方便的配置,基本不需要额外美工处理,同时支持ajax无刷新效果。...另外就是支持多窗体(MDI)功能,我们知道在C/S的应用程序中很容易实现MDI应用,在一个主窗体中打开多个子窗体,方便客户在不同的窗体间进行切换,支持多任务的操作,但是在B/S的环境下要实现MDI的效果...,一种了借助IE,firefox之类的浏览器实现,问题是的你还得让每个URL的Redirect加上Target的属性,每次谈出新窗口,自然不是很好的解决办法,但是Coolite的页面布局实现了这样的功能

    1.1K30

    使用微服务架构思想,设计部署OAuth2.0授权认证框架

    WebAPI,而不是其它Web资源。...IdentityServer 简单登录账号认证 ASP.NET Web API Demo.OAuth2.Mvc 简单登录账号认证,支持登录会话  ASP.NET Web MVC 6 其它 PWMIS.OAuth2...在本例中,获取的令牌有效期只有1分钟,超过时间就需要刷新令牌: /// /// 使用指定的令牌,直接刷新访问令牌 /// 令牌过期后需要刷新令牌获取新的访问令牌,否则应用使用过期的令牌访问就会出错,因此我们应该在令牌超期之前就检查令牌是否马上到期,在到期之前的前一秒我们就立即刷新令牌,用新的令牌来访问资源服务器;但是刷新令牌可能导致之前一个线程使用的令牌失效...然后看TakeToken 方法,它首先尝试获取一个当前用户的令牌,如果令牌快过期,就尝试刷新令牌: /// /// 取一个访问令牌 /

    11.3K32

    ASP.NET MVC 1.0发布

    Microsoft已经发布了ASP.NET Model-View-Controller (MVC) web框架1.0版,这是微软采用开源协议发布,并且同开发社区充分互动的一个产品,和ASP.NET Webform...学习ASP.NET MVC 的过程中,有很多开发观念、开发技巧需要学习,而且学习 ASP.NET MVC 几乎等于放弃服务端控件的使用 (因为没有ViewState可用),有些服务端控件还是可以用的,例如...ASP.NET图表控件参看在asp.net mvc上应用新ASP.NET图表控件,在codeplex上有一个ASP.NET MVC Friendly HttpModule,通过这个HttpModule可以在你的项目中使用服务端控件...要让一个懂 ASP.NET 的人主动学习 ASP.NET MVC还真的不是一件容易的事,毕竟这两者之间还是有一些鸿沟的,而且还要放弃掉一些曾经拥有(可能还是引以为豪)的知识,例如:服务端控件(Server...FamilyID=53289097-73ce-43bf-b6a6-35e00103cb4b&displaylang=en ASP.NET MVC: 构建不带 Web 窗体的 Web 应用程序:http:

    1.3K100

    使用OAuth 2.0访问谷歌的API

    例如,一个JavaScript应用程序可能会请求令牌使用的浏览器重定向到谷歌的访问,而一个应用程序,没有浏览器使用Web服务请求的设备上安装。 一些请求需要在用户与他们的谷歌帐户登录的验证步骤。...它一般是要求最佳实践作用域递增,在当时的访问是必需的,而不是前面。例如,在用户按下“购买”按钮要支持购买一个应用程序不应该要求谷歌钱包访问; 看到增量授权。 3.发送令牌的API访问。...方案 Web服务器应用程序 该谷歌的OAuth 2.0端点支持的Web服务器应用程序使用的语言和框架,如PHP,Java和Python和Ruby,和ASP.NET。...应用程序应该保存令牌以供将来使用刷新和使用令牌来访问谷歌的API访问。一旦访问令牌过期后,应用程序使用令牌来获得一个新的刷新。 有关详细信息,请参阅使用OAuth 2.0 Web服务器应用程序。...同样,在企业的情况下,你的应用程序可以请求一些资源委派访问。 对于这些类型的服务器到服务器交互,你需要一个服务帐户,这是属于你的应用程序,而不是对个人最终用户的账户。

    4.5K10

    Visual Studio 2013 Web开发

    6、Microsoft.AspNet.Identity: ASP.NET Identity 是构建 ASP.NET web 应用程序的一种新的身份认证系统。...ASP.NET Identity 的功能如下: ASP.NET Identity 系统 ASP.NET Identity 可用于所有的ASP.NET框架,如ASP.NET MVC,Web窗体,Web页...单元测试 ASP.NET Identity 可以是你的Web应用程序拥有更多的单元测试功能。 简单的角色提供程序 简单的角色提供程序,可以让你使用角色限制访问所控制的部分或全部应用程序。...外部登录 你可以轻松添加外部登录功能,如使用微软帐户、 Facebook、 Twitter 和谷歌账号登陆到你的应用中,应用程序只存储用户特定的数据。...OWIN将网页应用程序从网页服务器分离出来,然后将应用程序托管于OWIN的程序而离开IIS之外。 ?

    2.1K50

    分享一篇详尽的关于如何在 JavaScript 中实现刷新令牌的指南

    访问令牌用于访问受保护的资源,例如 API,而刷新令牌用于在当前访问令牌过期时获取新的访问令牌。 当 JWT 用作访问令牌时,它通常使用用户的声明和令牌的过期时间进行编码。...当当前访问令牌过期时,客户端可以使用刷新令牌来获取新的访问令牌。 总之,OAuth 2.0 提供了一个用于保护资源访问的框架,而 JWT 提供了一种紧凑且安全的方式来编码和在各方之间传输声明。...私人声明:这些是为在同意使用它们的各方之间共享信息而创建的自定义声明,既不是注册声明也不是公开声明。...以下是应用程序如何在 Node.js 应用程序中使用 JWT 刷新令牌的示例: 用户登录到应用程序并将其凭据发送到身份验证服务器。 身份验证服务器验证凭据,生成 JWT 访问令牌和 JWT 刷新令牌。...总的来说,在身份验证过程中加入刷新令牌可以极大地改善用户体验并提高 Web 应用程序的安全性。通过本指南,您现在应该具备在 JavaScript 应用程序中实现刷新令牌所需的知识和工具。

    36130

    ASP.NET Core 中的身份验证和授权(针对 .NET 89 更新)

    在 ASP.NET Core 中配置身份验证 ASP.NET Core 提供了多种身份验证选项,包括基于 Cookie 的身份验证、JWT (JSON Web 令牌)、OAuth2、OpenID Connect...让我们探索这些方法的设置和配置,特别注意 ASP.NET Core 8 中的更新。 1. 基于 Cookie 的身份验证 此方法非常适合会话管理至关重要的传统 Web 应用程序。...使用 JWT 时,令牌过期和刷新令牌对于维护安全会话而不会给用户带来过重负担至关重要。...实施刷新令牌可确保用户无需频繁登录,从而增强用户在高流量应用程序(如电子商务平台)中的用户体验。...app.UseHttpsRedirection(); 身份验证和授权是保护 ASP.NET Core 中的 Web 应用程序不可或缺的一部分。

    17110

    如何在 ASP.NET MVC 中集成 AngularJS(1)

    AngularJS VS ASP.NET Razor 视图 几年来,我一直在使用完整的 Microsoft ASP.NET MVC 平台来开发 Web 应用程序。...相比于使用传统的 ASP.NET Web 窗体的 postback 模型, ASP.NET MVC 平台使用的是 Razor 视图。 这带来的是:适当的业务逻辑、数据和表示逻辑之间关注点的分离。...在使用它的约定优于配置和简洁的设计模式进行 MVC 开发之后,你将永远不会想回过头去做 Web 窗体的开发。...ASP.NET MVC 平台及其 Razor 视图引擎,不但比 Web 窗体简洁,还鼓励和允许你将 .NET 服务器端代码和样式混合。...你当然会遇到这个错误,因为/View/Customers/CustomerInquiry的路由是个 Angular 路由,而不是 MVC 路由。MVC 并不知道这个路由。

    7.6K60

    eShopOnContainers 知多少:Identity microservice

    那进行 API 级别信任决策的第一步就是身份认证——确定用户身份是否可靠。 在微服务场景中,身份认证通常统一处理。一般有两种实现形式: 基于API 网关中心化认证:要求客户端必须都通过网关访问微服务。...基于安全令牌服务(STS)认证:所有的客户端先从STS获取令牌,然后请求时携带令牌完成认证。 ? 而本节所讲的Identity microservice就是使用第二种身份认证方式。...而从当前的架构来看,需要支持移动端、Web端、微服务间的交叉认证授权,所以传统的基于Cookie的本地认证方案就行不通了。我们就需要使用远程认证的方式来提供统一的认证授权机制。...ASP.NET Core Identity && IdentityServer4简介 ASP.NET Core Identity用于构建ASP.NET Core Web应用程序的成员资格系统,包括成员资格...在认证阶段我们通过用户信息获取到用户的Claims,而授权便是对这些的Claims的验证,如:是否拥有Admin的角色,姓名是否叫XXX等等。

    2.9K20

    使用 OWIN 搭建 OAuth2 服务器

    OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。...每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。...新建空的 Web 项目 这一步很容易, 只要用 Visual Studio 新建一个空的 Web 项目, 并用 nuget 管理器添加下面几个 package: Owin Microsoft.Owin.../OnReceiveAsync 使用一次; RefreshTokenProvider : 刷新令牌, 如果这个属性没有设置, 则不能从 /Token 刷新令牌。...用户管理与登录 OAuth 并不关注用户的管理, 在 ASP.NET 中, 应该有 Membership 或者 Identity 来完成, 但是 OAuth 又依赖于用户登录, 在这里仅创建一个简单的登录视图来实现用户登录的功能

    1.6K10

    ASP.NET MVC 5 - 开始MVC5之旅

    在本教程中的源码工程,您可在Visual Studio中运行MVC 5应用程序。您也可以使Web应用程序部署到一个托管服务提供商上。...就像您使用Microsoft Word来编写文档,你可以使用集成开发环境(IDE)来创建一个应用程序。在Visual Studio中的一个顶部工具栏中显示了各种不同的选项来供您使用。...创建您的第一个MVC 5应用程序 点击新建工程,在左侧选择Visual C#, 接着选择Web,然后选择ASP.NET  Web Application....然后Visual Studio会启动浏览器并打开应用程序的主页面。请注意,在浏览器的地址栏中会显示localhost:port#而不是像example.com 这样的地址。...这取决于你浏览器窗体的大小,你可通过点击右上角导航图标看到这些链接。 ? ? 同时,默认模板创建的ASP.Net MVC应用程序还提供了注册和登录功能。

    2.2K80

    Spring Security 的 CSRF 的相关资料

    应用程序上执行非本意的操作的攻击方法。...account=Alice&amount=1000&for=Badman" /> 如果有账户名为Alice的用户访问了恶意站点,而她之前刚访问过银行不久,登录信息尚未过期,那么她就会损失1000资金。...是的,确实如此,但你不能保证以下情况不会发生: 你不能保证你登录了一个网站后,不再打开一个tab页面并访问另外的网站。 你不能保证你关闭浏览器了后,你本地的Cookie立刻过期,你上次的会话已经结束。...令牌可以通过任何方式生成,只要确保随机性和唯一性(如:使用随机种子【英语:random seed】的哈希链 )。这样确保攻击者发送请求时候,由于没有该令牌而无法通过验证。...这种数据通常是窗体中的一个数据项。 服务器将其生成并附加在窗体中,其内容是一个伪随机数。当客户端通过窗体提交请求时,这个伪随机数也一并提交上去以供校验。

    59820

    MVC5 - ASP.NET Identity登录原理 - Claims-based认证和OWIN

    Response都是封装在HttpContext里面的,而这些信息是从IIS中来,最后也是交给IIS处理,因为微软给IIS写代码的时候直接集成了这一块,但是想一下,如果web服务器不是IIS,那么这些信息又从哪里获取呢...即使现在,在web.config添加自己定义的http module 也不是一件能让人开心的事情,反正我一想到那个很长的类名以及程序集名就够蛋疼的。   ...有了这些数据以后,我们就不需要和.NET的那些对象打交道了,比如说ASP.NET MVC中的HttpContextBase, 以及WEB API  中的HttpRequestMessage和HttpResponseMessage...我们在VS2013中新建一个MVC5的站点,默认会为我们加上以下的dll: OWin.dll Microsoft.Owin.dll Microsoft.Owin.Host.SystemWeb Microsoft.Owin.Security...我们可以回顾一样如何在http module中为Authenticate绑定事件。

    2.7K50

    为什么 web 开发人员需要迁移到. NET Core, 并使用 ASP.NET Core MVC 构建 web 和 webserviceAPI

    如果用mvc替换console时, 它将创建一个使用ASP.NET core MVC的 web 应用程序项目。...因为 Web form和 MVC 有着完全不同的体系结构模型。MVC 使用模型、视图和控制器的分离。也没有 webform 控件组件 (如 web 窗体)。...如果你的 web 应用程序使用的是 ASP.NET MVC 5, 则你可以首先创建一个新的 ASP.NET Core MVC 项目,复制粘贴某些代码到 ASP.NET Core。...如果你的 web 应用程序只是一个 web api , 则你可以首先创建一个新的 ASP.NET Core Web API项目,不是简单复制一些代码。...但是, 如果您的代码是意大利面条,则需要进行重构,.NET Core默认就使用依赖关系注入。这是ASP.NET常见最佳实践,当然是现在做更好, 而不是不做。

    1.6K90

    为什么 web 开发人员需要迁移到. NET Core, 并使用 ASP.NET Core MVC 构建 web 和 webserviceAPI

    如果用mvc替换console时, 它将创建一个使用ASP.NET core MVC的 web 应用程序项目。...因为 Web form和 MVC 有着完全不同的体系结构模型。MVC 使用模型、视图和控制器的分离。也没有 webform 控件组件 (如 web 窗体)。...如果你的 web 应用程序使用的是 ASP.NET MVC 5, 则你可以首先创建一个新的 ASP.NET Core MVC 项目,复制粘贴某些代码到 ASP.NET Core。...如果你的 web 应用程序只是一个 web api , 则你可以首先创建一个新的 ASP.NET Core Web API项目,不是简单复制一些代码。...但是, 如果您的代码是意大利面条,则需要进行重构,.NET Core默认就使用依赖关系注入。这是ASP.NET常见最佳实践,当然是现在做更好, 而不是不做。

    3.5K40
    领券