首页
学习
活动
专区
工具
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 MVCASP.NET Core 没有内置 Cache 对象,可以拿来在控制器里面直接使用。...一个绝对过期设置意味着该缓存项会在严格指定日期和时间点被移除,滚动过期设置则意味着它在给定一段时间量处于空闲状态(也就是没人去访问)之后被移除。...如果令牌处于活动状态的话,则缓存项就会在缓存维持,如果令牌被取消掉了,则该缓存项就将从缓存删除掉。一旦缓存项从缓存删除掉了,MyCallback 就像之前一样被调用。

1.2K20

Coolite Toolkit非常棒控件

Coolite Toolkit介绍 Coolite Toolkit 是一个支持ASP.NET AJAXWeb控件。...网络资源 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之类浏览器实现,问题是的你还得让每个URLRedirect加上Target属性,每次谈出新窗口,自然不是很好解决办法,但是Coolite页面布局实现了这样功能

1.1K30

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

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

10.8K32

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.4K10

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 MVCWeb窗体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 应用程序实现刷新令牌所需知识和工具。

24030

何在 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.5K60

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.8K20

使用 OWIN 搭建 OAuth2 服务器

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

1.5K10

Spring Security CSRF 相关资料

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

57820

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.1K80

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

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

2.6K50

Spring Security CSRF 相关资料

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

57420

为什么 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.4K40
领券